A Unified Symbolic Evaluation Framework for Parallelizing Compilers
نویسندگان
چکیده
The quality of many optimizations and analyses of parallelizing compilers depends signiicantly on the ability to evaluate symbolic expressions and on the amount of information available about program variables at arbitrary program points. In this paper, we describe an eeective and uniied symbolic evaluation framework that statically determines the values of variables and symbolic expressions, assumptions about and constraints between variable values and the condition under which control ow reaches a program statement. We introduce program context, a novel representation for comprehensive and compact control and data ow analysis information. Program contexts are described as rst order logic formulas which enable us to use public domain software for standard symbolic manipulation. Computations are represented as algebraic expressions deened over a program's problem size. Our symbolic evaluation techniques comprise accurate modeling of assignment and input/output statements, branches, loops, recurrences, arrays and procedures. EEciency and accuracy are highly improved by aggressive simpliication techniques. All of our techniques target both linear as well as non-linear expressions and constraints. A variety of examples, including program veriication, dependence analysis, array privatization, communication vectorization and elimination of redundant communication is used to illustrate the eeectiveness of our approach. We present results from a preliminary implementation of our framework as part of a parallelizing compiler that demonstrate the potential performance gains achievable by employing symbolic evaluation to support program parallelization.
منابع مشابه
Symbolic Program Analysis and Optimization for Parallelizing Compilers
A program ow analysis framework is proposed for parallelizing compilers. Within this framework, symbolic analysis is used as an abstract interpretation technique to solve many of the ow analysis problems in a uniied way. Some of these problems are constant propagation , global forward substitution, detection of loop invariant computations, and induction variable substitution. The solution space...
متن کاملSymbolic Analysis: A Basis for Parallelization, Optimization, and Scheduling of Programs
This paper presents an abstract interpretation framework for parallelizing compilers. Within this framework, symbolic analysis is used to solve various ow analysis problems in a uniied way. Symbolic analysis also serves as a basis for code generation optimizations and a tool for derivation of computation cost estimates. A loop scheduling strategy that utilizes symbolic timing information is als...
متن کاملSymbolic expression evaluation to support parallelizing compilers
Symbolic analysis is of paramount importance to further advance the state-of-the-art of parallelizing compilers. The quality of various compiler analyses and optimizing code transformations depend on the ability to evaluate symbolic expressions for equality and inequality (=; <;>) relationships. This paper describes a powerful algorithm that computes lower and/or upper bounds of wide classes of...
متن کاملPerformance Analysis of Symbolic Analysis Techniques for Parallelizing Compilers
Understanding symbolic expressions is an important capability of advanced program analysis techniques. Many current compiler techniques assume that coefficients of program expressions, such as array subscripts and loop bounds, are integer constants. Advanced symbolic handling capabilities could make these techniques amenable to real application programs. Symbolic analysis is also likely to play...
متن کاملPolaris: Improving the Effectiveness of Parallelizing Compilers
It is the goal of the Polaris project to develop a new parallelizing compiler that will overcome limitations of current compilers. While current parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. After a study of application codes, it was concluded that by adding a few new techniques to current compilers, automati...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Trans. Parallel Distrib. Syst.
دوره 11 شماره
صفحات -
تاریخ انتشار 2000